package com.biz.primus.model.order.vo.request;

import com.biz.primus.model.cart.enums.ShippingLevel;
import com.biz.primus.model.order.enums.OrderItemType;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * 订单明细请求模型
 *
 * @author Tiger Feng
 * @date 2017年11月09日
 */
@Data
@NoArgsConstructor
@ApiModel("订单明细请求模型")
public class OrderItemRequestVO implements Serializable {
    private static final long serialVersionUID = -8196988623844025833L;

    //---------------------------------
    // 商品基础
    @ApiModelProperty("商品ID")
    private Long productId;
    @ApiModelProperty("商品编码")
    private String productCode;

    @ApiModelProperty(value = "商品名称", hidden = true)
    @JsonIgnore
    private String productName;
    @ApiModelProperty(value = "商品时效", hidden = true)
    @JsonIgnore
    private ShippingLevel shippingLevel;
    @ApiModelProperty(value = "Logo商品品牌", hidden = true)
    @JsonIgnore
    private String logo;
    @ApiModelProperty(value = "商品品牌ID", hidden = true)
    @JsonIgnore
    private Long brandId;
    @ApiModelProperty(value = "商品分类ID", hidden = true)
    @JsonIgnore
    private Long categoryId;
    @ApiModelProperty(value = "重量,克", hidden = true)
    @JsonIgnore
    private Integer weight;
    @ApiModelProperty(value = "商品箱规中 需要在前端展示瓶箱切换的数量",hidden = true)
    @JsonIgnore
    private Integer packageNumber;

    @ApiModelProperty("商品数量")
    private Integer quantity;

    //---------------------------------
    // 价格
    @ApiModelProperty(value = "最终价，折扣促销后实际支付价", hidden = true)
    @JsonIgnore
    private Integer finalPrice;

    @ApiModelProperty(value = "市场价，划线价", hidden = true)
    @JsonIgnore
    private Integer marketPrice;
    @ApiModelProperty(value = "会员价", hidden = true)
    @JsonIgnore
    private Integer memberPrice;
    @ApiModelProperty(value = "电子钱包价", hidden = true)
    @JsonIgnore
    private Integer eWalletPrice;
    @ApiModelProperty(value = "整箱单瓶价", hidden = true)
    @JsonIgnore
    private Integer fclSinglePrice;
    @ApiModelProperty(value = "商品特价", hidden = true)
    @JsonIgnore
    private Integer specialOfferPrice;
    @ApiModelProperty(value = "商品最多以特价购买的数量", hidden = true)
    @JsonIgnore
    private Integer specialOfferQuantityLimit;

    //---------------------------------
    // 促销
    @ApiModelProperty(value = "当前商品促销减免金额，多件商品",hidden = true)
    @JsonIgnore
    private Integer discountPromotionMoney = 0;
    @ApiModelProperty(value = "促销ID", hidden = true)
    @JsonIgnore
    private Long promotionId;
    @ApiModelProperty(value = "商品项标签,例如加价换购,下单得酒..等的枚举字符串", hidden = true)
    @JsonIgnore
    private String itemTag;

    //---------------------------------
    // 优惠券

    @ApiModelProperty(value = "当前商品优惠券减免金额，多件商品", hidden = true)
    @JsonIgnore
    private Integer discountCouponMoney;

    //---------------------------------
    // 订单明细信息

    @ApiModelProperty(
            value = "订单商品类型(normal:普通商品、present:赠品、promotion:促销商品、seckill:秒杀商品)",
            hidden = true)
    @JsonIgnore
    private OrderItemType type;
    @ApiModelProperty(value = "系统分配金额时的备注", hidden = true)
    @JsonIgnore
    private List<String> allocationRemarks;
}
